<?php

/**
 * Add evento form
 */

class Application_Form_Evento extends Zend_Form
{
    public function init()
    {  
        // Titolo element
        $titolo = $this->createElement('text', 'evTitolo');
        // Set Options
        $titolo->setLabel('Titolo:');
        $titolo->setRequired(TRUE);
        $titolo->setAttrib('size', 40);
        $titolo->addErrorMessage('Il titolo è obbligatorio!');
        $titolo->addFilter('StringTrim'); // Toglie gli spazi all'inizio e alla fine della stringa
        $titolo->addDecorators(array(
            'ViewHelper',
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        $this->addElement($titolo);
        //**********************************************************************
        
        // Categoria element
        $categoria = $this->createElement('select', 'category_catId');
        // Set Options
        $categoria->setLabel('Categoria:');
        $catModel = new Application_Model_Categorys();
        $data = $catModel->getCatArray();
        
        $categoria->setMultiOptions($data);
        
        // Add Element to the form
        $this->addElement($categoria);
        //**********************************************************************
        
        
        // Foto element
        $foto = $this->createElement('file', 'fotoEvento');
        // Set Options
        $foto->setLabel('Upload foto (max. 6):');
        $foto->setRequired(FALSE);
        $foto->setDestination('img/eventi/');
        $foto->addValidator('Size', FALSE, 102400);
        $foto->addValidator('Extension', FALSE, 'jpg,jpeg,JPEG,png,gif');
        $foto->setMultiFile(6);
        
        $this->setAttrib('enctype', 'multipart/form-data');
        // Add Element to the form
        $this->addElement($foto);
        //**********************************************************************
        
        // Data Inizio element
        $dataInizio = new ZendX_JQuery_Form_Element_DatePicker('evDataInizio',
            array('jQueryParams' => array('dateFormat' => 'yy-mm-dd'))
        );
        // Set Options
        $dataInizio->setLabel('Data di Inizio (aaaa-mm-gg):');
        $dataInizio->setRequired(TRUE);
        $dataInizio->addErrorMessage('La data deve essere nella forma aaaa-mm-gg');
        $dataInizio->addFilter('StringTrim'); // Toglie gli spazi all'inizio e alla fine della stringa
        $dateValidator = new Zend_Validate_Date(array('format' => 'Y-m-d'));
        $dataInizio->addValidator($dateValidator); 
        $dataInizio->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($dataInizio);
        //**********************************************************************
        
        // Data Fine element
        $dataFine = new ZendX_JQuery_Form_Element_DatePicker('evDataFine',
            array('jQueryParams' => array('dateFormat' => 'yy-mm-dd'))
        );
        // Set Options
        $dataFine->setLabel('Data di Fine (aaaa-mm-gg):');
        $dataFine->setRequired(TRUE);
        $dataFine->addErrorMessage('La data deve essere nella forma aaaa-mm-gg');
        $dataFine->addFilter('StringTrim'); // Toglie gli spazi all'inizio e alla fine della stringa
        $dateValidator = new Zend_Validate_Date(array('format' => 'Y-m-d'));
        $dataFine->addValidator($dateValidator);
        $dataFine->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($dataFine);
        //**********************************************************************
        
        // Data Rimandato element
        $dataRimandato = new ZendX_JQuery_Form_Element_DatePicker('evDataRimandato',
            array('jQueryParams' => array('dateFormat' => 'yy-mm-dd'))
        );
        // Set Options
        $dataRimandato->setLabel('Data di Rinvio (aaaa-mm-gg):');
        $dataRimandato->setRequired(FALSE);
        $dataRimandato->addErrorMessage('La data deve essere nella forma aaaa-mm-gg');
        $dataRimandato->addFilter('StringTrim'); // Toglie gli spazi all'inizio e alla fine della stringa
        $dateValidator = new Zend_Validate_Date(array('format' => 'Y-m-d'));
        $dataRimandato->addValidator($dateValidator);
        $dataRimandato->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($dataRimandato);
        //**********************************************************************
        
        // Data Termine ultimo iscrizione element
        $dataTermine = new ZendX_JQuery_Form_Element_DatePicker('evDataTermine',
            array('jQueryParams' => array('dateFormat' => 'yy-mm-dd'))
        );
        // Set Options
        $dataTermine->setLabel('Data di Termine (aaaa-mm-gg):');
        $dataTermine->setRequired(TRUE);
        $dataTermine->addErrorMessage('La data deve essere nella forma aaaa-mm-gg');
        $dataTermine->addFilter('StringTrim'); // Toglie gli spazi all'inizio e alla fine della stringa
        $dateValidator = new Zend_Validate_Date(array('format' => 'Y-m-d'));
        $dataTermine->addValidator($dateValidator);
        $dataTermine->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($dataTermine);
        //**********************************************************************
        
        // Intro element
        $intro = $this->createElement('textarea', 'evIntro');
        // Set Options
        $intro->setLabel('Introduzione:');
        $intro->setRequired(TRUE);
        $intro->setAttrib('rows', 5);
        $intro->setAttrib('cols', 40);
        $intro->addErrorMessage('L\'introduzione è obbligatoria');
        $intro->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($intro);
        //**********************************************************************
        
        // Corpo element
        $corpo = $this->createElement('textarea', 'evCorpo');
        // Set Options
        $corpo->setLabel('Corpo:');
        $corpo->setRequired(TRUE);
        $corpo->addErrorMessage('Il corpo è obbligatorio');
        $corpo->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($corpo);
        //**********************************************************************
        
        // Logistica element
        $logistica = $this->createElement('textarea', 'evLogistica');
        // Set Options
        $logistica->setLabel('Logistica:');
        $logistica->setRequired(TRUE);
        $logistica->addErrorMessage('Campo obbligatorio');
        $logistica->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($logistica);
        //**********************************************************************
        
        // Abbigliamento element
        $abbigliamento = $this->createElement('textarea', 'evAbbigliamento');
        // Set Options
        $abbigliamento->setLabel('Abbigliamento:');
        $abbigliamento->setRequired(TRUE);
        $abbigliamento->addErrorMessage('Campo obbligatorio');
        $abbigliamento->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($abbigliamento);
        //**********************************************************************
        
        // Costo element
        $costo = $this->createElement('textarea', 'evCosto');
        // S/et Options
        $costo->setLabel('Costo:');
        $costo->setRequired(TRUE);
        $costo->addErrorMessage('Campo obbligatorio');
        $costo->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($costo);
        //**********************************************************************
        
        // Info element
        $info = $this->createElement('textarea', 'evInfo');
        // S/et Options
        $info->setLabel('Info:');
        $info->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($info);
        //**********************************************************************
        
        // Video element
        $video = $this->createElement('text', 'evVideo');
        // S/et Options
        $video->setLabel('Youtube video url:');
        $video->setAttrib('size', 40);
        $video->addValidator(new Bix_Validate_YoutubeUrl());
        $video->addDecorators(array(
            array('Errors', array(
                                'class' =>'error list-style-type-none'
            )),
        ));
        // Add Element to the form
        $this->addElement($video);
        //**********************************************************************
        
        // Guida element
        $guida = $this->createElement('select', 'guida_guidaId');
        // Set Options
        $guida->setLabel('Guida:');
        $guidasModel = new Application_Model_Guidas();
        $guidas = $guidasModel->fetchAll();
        $data = array();
        foreach ($guidas as $g){
            $data[$g->guidaId] = $g->guidaNome;
        }
        $guida->setMultiOptions($data);
        
        
        // Add Element to the form
        $this->addElement($guida);
        //**********************************************************************
        
        // Difficoltà element
        $difficolta = $this->createElement('select', 'difficolta_diffId');
        // Set Options
        $difficolta->setLabel('Difficoltà:');
        $difficoltasModel = new Application_Model_Difficoltas();
        $difficoltas = $difficoltasModel->fetchAll();
        $data = array();
        foreach ($difficoltas as $d){
            $data[$d->diffId] = $d->diffNome;
        }
        $difficolta->setMultiOptions($data);
        
        
        // Add Element to the form
        $this->addElement($difficolta);
        //**********************************************************************
        
        
        //Submit button
        $this->addElement('submit', 'submit',
                array('label' => 'Add'));
        //**********************************************************************
        
       
    }
}
